您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

一种智能卡操作方法、智能卡、终端及系统

  • 申请号:CN201110404645.8 申请公布号: CN102567771B
  • 申请日: 2011-12-07 申请公布日: 2014-12-24
  • 申请(专利权)人: 专利代理机构: 北京同达信恒知识产权代理有限公司
  • 分类号:G06K19/07;G06K17/00

专利介绍

本发明公开了一种智能卡操作方法,用以减少终端和智能卡的交互次数,进而减少所占用的交互时间,提高处理效率。该方法为:接收特殊APDU命令,所述特殊APDU命令由至少两条APDU命令组合形成,所述至少两条APDU命令用于对智能卡数据进行连续的同类操作,按照所述特殊APDU命令命令体中预定义的数据域格式解析所述特殊APDU命令的命令体,获取相应数据并对智能卡进行相应的操作。本发明同时公开了一种智能卡、一种终端及一种操作智能卡的系统。
1.一种智能卡操作方法,其特征在于,包括:接收特殊应用程序协议数据单元APDU命令,所述特殊APDU命令由至少两条APDU命令组合形成,所述至少两条APDU命令用于对智能卡数据进行连续的同类操作;按照所述特殊APDU命令命令体中预定义的数据域格式解析所述特殊APDU命令的命令体,获取相应数据并对智能卡进行相应的操作;其中,所述特殊APDU命令命令头的中设置有预定义的特殊指令码,该特殊指令码用于确定接收的APDU命令为特殊APDU命令,根据所述特殊APDU命令命令头中设置的特殊指令码,确定为获取数据的APDU命令,或者,确定为发送数据的APDU命令;在所述特殊APDU命令为获取数据的命令时,所述特殊APDU命令的命令体中预定义的数据域格式中包含的信息为:数据的条数、数据所在文件的标识、数据所在文件的类型、数据起始地址以及数据长度信息;在所述特殊APDU命令为发送数据的命令时,所述特殊APDU命令命令体中预定义的数据域格式中还包含发送的每条数据的内容。
2.如权利要求1所述的方法,其特征在于,在所述特殊APDU命令为获取数据的特殊APDU命令时,解析所述APDU命令体并获取每条数据后,生成APDU响应,所述APDU响应的命令体中携带获取的每条数据。
3.一种智能卡,其特征在于,包括:接收模块,用于接收特殊应用程序协议数据单元APDU命令,所述特殊APDU命令由至少两条APDU命令组合形成,所述至少两条APDU命令用于对智能卡数据进行连续的同类操作;处理模块,用于按照所述特殊APDU命令命令体中预定义的数据域格式解析所述特殊APDU命令的命令体,获取相应数据并进行相应的操作;其中,所述特殊APDU命令命令头的中设置有预定义的特殊指令码,该特殊指令码用于确定接收的APDU命令为特殊APDU命令,根据所述特殊APDU命令命令头中设置的特殊指令码,确定为获取数据的APDU命令,或者,确定为发送数据的APDU命令;在所述特殊APDU命令为获取数据的命令时,所述特殊APDU命令的命令体中预定义的数据域格式中包含的信息为:数据的条数、数据所在文件的标识、数据所在文件的类型、数据起始地址以及数据长度信息;在所述特殊APDU命令为发送数据的命令时,所述特殊APDU命令命令体中预定义的数据域格式中还包含发送的每条数据的内容。
4.如权利要求3所述的智能卡,其特征在于,还包括存储模块,用于所述处理模块按照所述特殊APDU命令命令体中预定义的数据域格式解析所述特殊APDU命令的命令体时,存储获取的相应数据;在所述操作为获取数据操作时,所述存储模块还用于存储所述处理模块进行所述操作后获取的数据;所述处理模块还用于在进行所述操作并获取需要的数据后,生成APDU响应,该APDU响应中携带获取的数据。
5.一种终端,其特征在于,包括:处理模块,用于将针对智能卡的数据进行连续的同类操作的、至少两条应用程序协议数据单元APDU命令合并为一条进行相应操作的特殊APDU命令;发送模块,用于将所述特殊APDU命令发送给智能卡;所述特殊APDU命令命令头的中设置有预定义的特殊指令码,该特殊指令码用于确定接收的APDU命令为特殊APDU命令,根据所述特殊APDU命令命令头中设置的特殊指令码,确定为获取数据的APDU命令,或者,确定为发送数据的APDU命令;在所述特殊APDU命令为获取数据的命令时,所述特殊APDU命令的命令体中预定义的数据域格式中包含的信息为:数据的条数、数据所在文件的标识、数据所在文件的类型、数据起始地址以及数据长度信息;在所述特殊APDU命令为发送数据的命令时,所述特殊APDU命令命令体中预定义的数据域格式中还包含发送的每条数据的内容。
6.如权利要求5所述的终端,其特征在于,还包括接收模块,用于接收智能卡发送的APDU响应;所述处理模块还用于解析所述APDU响应并获取该APDU响应携带的数据。
7.如权利要求6所述的终端,其特征在于,还包括存储模块,用于存储所述APDU响应携带的数据。
8.一种操作智能卡的系统,其特征在于,包括:终端,用于将针对智能卡的数据进行连续的同类操作的、至少两条应用程序协议数据单元APDU命令合并为一条进行相应操作的特殊APDU命令,并将所述特殊APDU命令发送给智能卡;智能卡,接收所述终端发送的所述特殊APDU命令,按照所述特殊APDU命令命令体中预定义的数据域格式解析所述特殊APDU命令的命令体,获取相应数据并进行相应的操作,所述特殊APDU命令由至少两条APDU命令组合形成,所述至少两条APDU命令用于对智能卡数据进行连续的同类操作;所述特殊APDU命令命令头的中设置有预定义的特殊指令码,该特殊指令码用于确定接收的APDU命令为特殊APDU命令,根据所述特殊APDU命令命令头中设置的特殊指令码,确定为获取数据的APDU命令,或者,确定为发送数据的APDU命令;在所述特殊APDU命令为获取数据的命令时,所述特殊APDU命令的命令体中预定义的数据域格式中包含的信息为:数据的条数、数据所在文件的标识、数据所在文件的类型、数据起始地址以及数据长度信息;在所述特殊APDU命令为发送数据的命令时,所述特殊APDU命令命令体中预定义的数据域格式中还包含发送的每条数据的内容。技术领域
本发明涉及智能卡技术领域,尤其涉及一种智能卡操作方法、智能卡、终端及系统。
背景技术
智能卡已经在电信、交通、金融等多个领域得到广泛应用,在一个复杂的交易流程中,可能需要频繁读取智能卡中的数据,或者频繁在智能卡中写入数据。也就是说,终端可能需要发送很多读文件指令,来读取智能卡里面的数据;或者,终端发送很多写文件的指令,在智能卡中写入数据,这就导致终端和智能卡的交互时间较长。例如,在金融领域,按照EMV协议规定在交易初始化后,要求终端发送多条读文件指令。同样地,如果终端需要对智能卡中大量的文件进行更新,终端就需要发送多个更新文件指令以对智能卡中的多个文件进行更新。例如,在金融领域,在智能卡中实现数据个人化时,需要同时发送多条更新文件指令。下面以对智能卡中的A、B、C三个文件进行读或写操作为例进行说明,在进行读操作时,现在执行流程为:1、读A文件时,终端发送读A文件的指令;2、读B文件时,终端发送读B文件的指令;3、读C文件时,终端发送读C文件的指令;在进行写操作时,现在执行流程为:1、写入A文件时,终端发送写入A文件的指令;2、写入B文件时,终端发送写入B文件的指令;3、写入C文件时,终端发送写入C文件的指令。可见,向智能卡连续发送多条相同操作的指令,就需要终端和智能卡之间进行相应次数的交互,这就使得交互过程繁琐,由于交互次数过多,而导致交互时间较长,降低了处理效率。
发明内容
本发明提供一种智能卡操作方法、智能卡、终端及系统,用以减少终端和智能卡的交互次数,进而减少所占用的交互时间,提高处理效率。本发明实施例提供的具体技术方案如下:一种智能卡操作方法,包括:接收特殊应用程序协议数据单元APDU命令,所述特殊APDU命令由至少两条APDU命令组合形成,所述至少两条APDU命令用于对智能卡数据进行连续的同类操作;按照所述特殊APDU命令命令体中预定义的数据域格式解析所述特殊APDU命令的命令体,获取相应数据并对智能卡进行相应的操作。一种智能卡,包括:接收模块,用于接收特殊应用程序协议数据单元APDU命令,所述特殊APDU命令由至少两条APDU命令组合形成,所述至少两条APDU命令用于对智能卡数据进行连续的同类操作;处理模块,用于按照所述特殊APDU命令命令体中预定义的数据域格式解析所述特殊APDU命令的命令体,获取相应数据并进行相应的操作。一种终端,包括:处理模块,用于将针对智能卡的数据进行连续的同类操作的、至少两条应用程序协议数据单元APDU命令合并为一条进行相应操作的特殊APDU命令;发送模块,用于将所述特殊APDU命令发送给智能卡。一种操作智能卡的系统,包括:终端,用于将针对智能卡的数据进行连续的同类操作的、至少两条应用程序协议数据单元APDU命令合并为一条进行相应操作的特殊APDU命令,并将所述特殊APDU命令发送给智能卡;智能卡,接收所述终端发送的所述特殊APDU命令,按照所述特殊APDU命令命令体中预定义的数据域格式解析所述特殊APDU命令的命令体,获取相应数据并进行相应的操作,所述特殊APDU命令由至少两条APDU命令组合形成,所述至少两条APDU命令用于对智能卡数据进行连续的同类操作。基于上述技术方案,本发明实施例中,通过将进行连续的同类操作的多条APDU命令合并为一条特殊APDU命令,由智能卡直接处理该特殊APDU命令并完成相应操作,从而将需要多次交互才能完成的操作,通过一次交互即可完成,有效减少了交互次数,进而减少了多个交互占用的时间,提高了处理效率。
附图说明
图1为本发明实施例中操作智能卡的系统架构图;图2为本发明实施例中智能卡结构示意图;图3为本发明实施例中终端结构示意图;图4为本发明实施例中智能卡操作的方法流程图;图5为本发明实施例中预定义的数据域格式示意图;图6为本发明实施例中预定义的另一数据域格式示意图;图7为本发明实施例中APDU响应的数据域格式示意图;图8为本发明实施例中智能卡和终端的详细交互流程图。
具体实施方式
为了减少终端和智能卡的交互次数,进而减少所占用的交互时间,提高处理效率,本发明实施例提供了一种智能卡操作方法、智能卡、终端及系统。下面结合附图对本发明优选的实施方式进行详细说明。如附图1所示,本发明实施例中,操作智能卡的系统主要包括终端10和智能卡11,其中,终端10,用于将针对智能卡11的数据进行连续的同类操作的、至少两条应用程序协议数据单元(APDU)命令合并为一条进行相应操作的特殊APDU命令,并将特殊APDU命令发送给智能卡11;智能卡11,用于接收终端10发送的特殊APDU命令,按照特殊APDU命令命令体中预定义的数据域格式解析特殊APDU命令的命令体,获取相应数据并进行相应的操作,该特殊APDU命令由至少两条预先确定的APDU命令组合形成,该至少两条APDU命令用于对智能卡数据进行连续的同类操作。应用程序协议数据单元(Applicationxa0Protocolxa0Dataxa0Unit,APDU)命令用于终端10和智能卡11之间进行通信。APDU遵守ISO/IEC7816规范。APDU命令包括命令头(Header)和命令体(Body),其中,命令头由五个字节组成,第1个字节(CLA字节)用于识别指令的一个特定应用程序类,第2个字节(INS字节)用于指示CLA字节中标示的某个指令类中的一个特定指令,该特定指令用于完成特定的功能,第5个字节用于存放APDU命令体的总长度,第3、4字节可以由用户根据需要自行定义,APDU命令体部分用于存放数据文件。其中,终端10将针对智能卡11的数据进行连续的同类操作的、至少两条APDU命令合并为一条进行相应操作的特殊APDU命令时,在特殊APDU命令命令头中设置预定义的特殊指令码,该特殊指令码用于指示进行上述操作;并按照预定义的数据域格式,将至少两条APDU命令命令体中的数据组合为特殊APDU命令命令体中的数据。较佳地,在特殊APDU命令命令头的第二个字节中设置预定义的特殊指令码。其中,终端10将连续从智能卡11中获取数据的、至少两条APDU命令合并一条获取数据的特殊APDU命令;或者,终端10将连续向智能卡11发送数据的、至少两条APDU命令合并为一条发送数据的特殊APDU命令。其中,终端10按照预定义的数据域格式将至少两条APDU命令命令体中的数据组合为特殊APDU命令命令体中的数据时,若特殊APDU命令为获取数据的命令时,预定义的数据域格式中包含的信息为:数据的条数、数据所在文件的标识、数据所在文件的类型、数据起始地址以及数据长度信息;若特殊APDU命令为发送数据的命令时,预定义的数据域格式中还包含需要发送的每条数据的内容。其中,根据具体的操作类型,智能卡11还需要向终端10发送响应APDU。例如,在读操作时,智能卡11需要将读取的数据携带在APDU中发送给终端10。如附图2所示,本发明实施例中,智能卡11主要包括第一接收模块20和第一处理模块21,其中,第一接收模块20,用于接收特殊APDU命令,特殊APDU命令由至少两条APDU命令组合形成,该至少两条APDU命令用于对智能卡数据进行连续的同类操作;第一处理模块21,用于按照该特殊APDU命令命令体中预定义的数据域格式解析该特殊APDU命令的命令体,获取相应数据并进行相应的操作。智能卡11还包括第一存储模块22,用于第一处理模块21按照特殊APDU命令命令体中预定义的数据域格式解析该特殊APDU命令的命令体时,存储获取的相应数据。其中,在上述操作为获取数据的操作时,第一存储模块22还用于存储第一处理模块21进行上述操作后获取的数据。其中,在上述操作为获取数据的操作时,第一处理模块21还用于在进行上述操作并获取需要的数据后,生成APDU响应,该APDU响应中携带获取的数据。智能卡11中还包括第一发送模块23,用于在第一处理模块21生成APDU响应后,发送给APDU响应。如附图3所示,本发明实施例提供的终端10主要包括第二处理模块30和第二发送模块31,其中,第二处理模块30,用于将针对智能卡11的数据进行连续的同类操作的、至少两条APDU命令合并为一条进行相应操作的特殊APDU命令;第二发送模块31,用于将特殊APDU命令发送给智能卡11。终端10还包括第二接收模块32,用于接收智能卡11发送的APDU响应。其中,第二处理模块30还用于解析APDU响应并获取该APDU响应携带的数据。终端10还包括第二存储模块33,用于存储APDU响应携带的数据。基于上述系统架构,如附图4所示,本发明实施例中,智能卡操作的详细方法流程如下:步骤401:接收特殊APDU命令,特殊APDU命令由至少两条APDU命令组合形成,该至少两条APDU命令用于对智能卡数据进行连续的同类操作;步骤402:按照该特殊APDU命令命令体中预定义的数据域格式解析该特殊APDU命令的命令体,获取相应数据并对智能卡进行相应的操作。本发明实施例中,预先确定至少两条APDU命令时,是将针对智能卡数据进行同一种类操作,并且是连续下发的APDU命令确定为可以组合的APDU命令。例如,准备连续下发到智能卡的两条对智能卡进行操作的APDU命令,且该两条APDU命令均是对智能卡进行写操作,则可以将该两条APDU命令确定为可以组合的APDU命令。其中,同类操作是指将从智能卡获取数据的APDU命令归为进行同类操作的APDU命令,或者将向智能卡发送数据的APDU命令归为进行同类操作的APDU命令。其中,特殊APDU命令命令头中设置有预定义的特殊指令码,该特殊指令码用于确定接收的APDU命令为特殊APDU命令。较佳地,该特殊指令码设置于APDU命令头的第二个字节。其中,根据特殊APDU命令命令头中设置的特殊指令码,确定为获取数据的APDU命令,或者,确定为发送数据的APDU命令。其中,在特殊APDU命令为获取数据的命令时,特殊APDU命令的命令体中预定义的数据域格式中包含的信息为:数据的条数、数据所在文件的标识、数据所在文件的类型、数据起始地址以及数据长度信息;在特殊APDU命令为发送数据的命令时,该特殊APDU命令命令体中预定义的数据域格式中还包含发送的每条数据的内容。例如,命令体中预定义的数据域格式如附图5所示,其中,Cnt表示数据的条数;SFI1-SFIn表示数据所在的n个文件的标识,可以是短文件标示符,也可以是文件名称;FILETEPE表示数据所在文件的类型;ADDR表示数据起始地址,若文件类型为二进制文件,则数据起始地址可以是文件的起始地址,若文件类型为记录文件,则数据起始地址为文件的记录号;LEN表示数据长度信息。其中,如果是写操作,在图5所示的数据域格式后需要加上需要写入文件中的每条数据的内容,如附图6所示,其中,LEN1长度的数据表示要写入文件SFI1的数据,SFIn长度的数据表示要写入文件SFIn的数据。较佳地,获取数据的特殊APDU命令为读命令;发送数据的特殊APDU命令为写命令。实际应用中,获取数据的特殊APDU命令并不仅限于读命令,同样,发送数据的特殊APDU命令也不仅限于写命令,只需要是针对智能卡连续进行的操作均是从智能卡获取数据,则可以合并为一条获取数据的特殊APDU命令,或者,只要是针对智能卡连续进行的操作均是向智能卡发送数据,则可以合并为一条发送数据的特殊APDU命令。其中,在特殊APDU命令为获取数据的特殊APDU命令时,解析该APDU命令体并获取每条数据后,生成APDU响应,该APDU响应的命令体中携带获取的每条数据。例如,APDU响应的命令体中需要携带的信息如附图7所示,其中,LEN1长度的信息表示要从智能卡的SFI1文件中读出的数据,同样LENn长度的信息表示要从智能卡的SFIn文件中读出的数据。下面通过举例对本发明进行详细说明。如附图8所示为智能卡和终端的交互过程示意图,该交互过程具体步骤如下:步骤801:终端分析需要下发至智能卡的APDU命令,并将连续进行同一种操作的多个APDU命令,确定为能够组合成一条特殊APDU命令的命令集合,并根据需要进行的操作确定该特殊APDU命令的命令头中采用的预定义的指令码;步骤802:按照预定义的由终端和智能卡相互约定的数据域格式,将命令集合中多个APDU命令的命令体组合为特殊APDU命令的命令体,形成特殊APDU命令;步骤803:将形成的特殊APDU命令发送至智能卡;步骤804:智能卡接收后,根据命令头中包含的预定义的特殊指令码确定为特殊APDU命令;步骤805:智能卡按照与终端侧约定的预定义的数据域格式解析特殊APDU命令的命令体获得相应数据,可以按照一定的格式保存至缓存;步骤806:智能卡按照特殊APDU命令命令头的指示进行相应操作,操作获得数据可以保存至缓存中;步骤807:智能卡根据操作结果形成响应APDU并发送给终端;步骤808:终端接收智能卡发送的响应APDU。在特殊APDU命令对应的操作为发送数据的操作时,智能卡无需向终端发送响应APDU,即可以省略步骤807和步骤808。例如,终端需要读取智能卡三个文件中的数据,该三个文件分别是:个人信息文件0001,其短文件标识为01,文件类型为透明文件(表示为0X28),需要读取该文件前0X08个字节的数据;钱包文件0002,其短文件标识为02,文件类型为钱包文件(表示为0X2F),需要读取当前记录0X08字节;交易记录文件0003,短文件标识为03,文件类型为循环文件(表示为0X2E),需要读取当前记录0X23字节,假设预定的读指令的指令码INS为B4,CLA为00或04,命令头第3、4字节设置为0,命令头第五个字节为0D,则终端形成的特殊APDU命令表示为:00B400000Dxa003xa001280008xa0022F0108xa0032E0123。智能卡接收特殊APDU命令后,根据命令头的第二字节B4确定为读操作,解析命令体后获知需要从本地读取个人信息文件的前0X08个字节的数据,当前钱包文件的记录8字节,以及当前交易记录文件的记录0X23字节,并在读取各文件的数据后通过APDU响应发送给终端。基于上述技术方案,本发明实施例中,通过将进行连续的同类操作的多条APDU命令合并为一条特殊APDU命令,由智能卡直接处理该特殊APDU命令并完成相应操作,从而将需要多次交互才能完成的操作,通过一次交互即可完成,有效减少了交互次数,进而减少了多个交互占用的时间,提高了处理效率。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。